import baseUrl from "@/api/baseUrl";
import request from "@/utils/request";

export function select_one_game(id) {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl + 'api/game/selectOneGame?gameId=' + id,
            method: 'get',
            headers: {
                // id: id
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

export function select_one_game_with_token(token, id) {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl + 'api/game/selectOneGame?gameId=' + id,
            method: 'get',
            headers: {
                Authorization: token,
                // id: id
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

export function get_comments(id) {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl,
            method: 'get',
            headers: {
                id: id
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

export function get_gameTypes() {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl + 'api/gameType/selectGameType',
            method: 'get',
            headers: {
                // Authorization: token
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

// 首页的游戏展示
// 后四个是可选参数，orderBy可以为Scores、Mark、Download、ReleasedTime、Price，isDes为1的时候为降序，query输入名字关键字

// 无搜索，展示所有游戏
export function select_game(des, orderBy, pageNum, pageSize) {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl + 'api/game/selectGame?isDes=' + des + '&orderBy=' + orderBy + '&pageNum=' + pageNum + '&pageSize=' + pageSize,
            method: 'get',
            headers: {
                // Authorization: token
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

// 传入搜索名称
export function search_game(des, orderBy, pageNum, pageSize, query) {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl + 'api/game/selectGame?isDes=' + des + '&orderBy=' + orderBy + '&pageNum=' + pageNum + '&pageSize=' + pageSize + '&query=' + query,
            method: 'get',
            headers: {
                // Authorization: token
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

// 展示某一类型的游戏
export function select_type_game(des, orderBy, pageNum, pageSize, typeId) {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl + 'api/game/selectGame?isDes=' + des + '&orderBy=' + orderBy + '&pageNum=' + pageNum + '&pageSize=' + pageSize + '&typeId=' + typeId,
            method: 'get',
            headers: {
                // Authorization: token
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

// 搜索游戏限定特定类型
export function search_type_game(des, orderBy, pageNum, pageSize, query, typeId) {
    return new Promise((resolve, reject) => {
        request({ //使用封装好的 axios 进行网络请求
            url: baseUrl + 'api/game/selectGame?isDes=' + des + '&orderBy=' + orderBy + '&pageNum=' + pageNum + '&pageSize=' + pageSize + '&query=' + query + '&typeId=' + typeId,
            method: 'get',
            headers: {
                // Authorization: token
            }
        }).then(response => { //使用 user 接口进行网络请求
            resolve(response) //将结果封装进 Promise
        }).catch(error => {
            reject(error)
        })
    })
}

export function download_game(token, edition) {
    return new Promise((resolve, reject) => {
        request({
            url: baseUrl + "api/game/download?edition=" + edition,
            method: 'post',
            headers: {
                Authorization: token,
                // edition: edition,
            }
        }).then(response => {
            resolve(response)
        }).catch(error => {
            reject(error)
        })
    })
}

export function select_edition(token, gameId, pageNum, pageSize) {
    return new Promise((resolve, reject) => {
        request({
            url: baseUrl + "api/game/selectEdition?gameId=" + gameId + '&pageNum=' + pageNum + '&pageSize=' + pageSize,
            method: 'get',
            headers: {
                Authorization: token,
                // edition: edition,
            }
        }).then(response => {
            resolve(response)
        }).catch(error => {
            reject(error)
        })
    })
}